U.S. patent application entitled xe2x80x9cDrive Based Adaptive Defragmentation Systemxe2x80x9d Ser. No. 09/865,927 filed on May 24, 2001, filed in the name of Gayle L. Noble, Rick S. Shimizu, and Jason P. Hanlon is hereby incorporated herein by reference in its entirety.
1. Field of the Invention
The invention generally relates to storing and retrieving data on a disc drive.
2. Background of the Related Art
Disc drives are capable of storing large amounts of digital data in a relatively small area. Disc drives store information on one or more recording media. The recording media conventionally takes the form of a circular storage disc, e.g., media, having a plurality of recording tracks. Conventional disc drives include one or more vertically aligned storage discs, each with at least one magnetic head for reading or writing information to the media. Typically, the magnetic head is attached to a positioner arm assembly that uses a motor to align the magnetic head above a selected track on the disc. The location of the magnetic head is typically determined by a disc controller that is given the position of a data area on the disc to read or write data. The precise location and movement of the head is typically accomplished by incorporating a closed-loop electromechanical servo system with a dedicated servo region, or regions, used to provide high speed or continuous feedback to the system to maintain accurate positioning of the data head.
Generally, data is stored on the media in data sectors within each recording track, i.e., a cylinder. As the media is generally round, to maintain the data density the number of data sectors per each cylinder on the outer portion of the media is greater than the number of sectors found on cylinders located closer to the center portion of the media. The time needed to access and/or store data is known as the xe2x80x9cseek timexe2x80x9d and is generally a function of the closed loop electromechanical servo system to move the magnetic head(s) from one data sector to another. The outer cylinders typically have faster access as the positioner arm moves less to read and write data.
Due to their large storage capacity relative to other forms of electronic digital data storage, disc drives are often used by electronic systems such as computers to permanently or semi-permanently store applications, e.g., software programs, data, etc. The amount of data stored on disc drives is a function of the media density, size, and number of medias used. The applications are generally stored as files that are then used by an end user, or users, to perform tasks such as word processing, calculations, and the like. To assist the applications in locating a file, conventional computer operating systems generally use a layered directory structure. The conventional layered directory structures usually have a main directory and then sub directories where the files are stored. For example, using the DOS operating system, a file named xe2x80x9cxyzxe2x80x9d may be given a logical location such as xe2x80x9cc:/xyzxe2x80x9d indicating that the file is located on the xe2x80x9ccxe2x80x9d drive at the root directory xe2x80x9c/xe2x80x9d.
To allow an application to find and use files on the media, each file is given a different logical location on the media by the computer operating system. Operating systems communicate with the disc drive using logical block addresses (LBA). When an application makes a request for a file from the operating system, the operating system uses the file name to look up the location in terms of a starting LBA and the number of LBAs needed to read or write the file. The LBA is then translated by internal disc drive software to the actual physical location on the disc drive, i.e., the physical block address (PBA). The PBA could include a number of data sectors depending upon the physical to logical translation being used by the host software. The translation from LBA to PBA is necessary to allow the disc drive to implement a defect management scheme and to set aside reserved areas on the media for manufacturer specific data not generally accessible to the operating system such as disc drive operating firmware, etc.
Generally, as files are written to the media, the files are stored in free LBAs. Ideally, the free PBAs may be contiguous, but as files are added and deleted during normal drive operation files may be stored randomly across the media as fragmented files. Additionally, on a multiple disc media, the file may be stored on different discs. Unfortunately, as the seek times are a generally a function of the amount of time for the positioner arm to move to a new location, fragmented files may cause a decrease in drive performance as the head is moved to access the files. Additionally, differing file types may require different storage requirements. For example, some applications assume that an audio/video file require a special partition separating the normal application data audio files from the video files. This requires that the host software make a logical estimate as to the size of partition needed thereby over, or under compensating for the space needed. Thus, as the PBA and LBA locations of the various files may not be optimum for a particular application, drive performance may suffer.
As the drive read and writes data to the media, the positioner arm moves the head(s) to different media locations related to each application. The faster the head is moved and finds the location the better the drive performance. Unfortunately, improving the speed of head movement on conventional drives having a limited mechanical capacity for movement requires upgrading the positioner and motor circuitry to increase the seek speed of the head(s). This adds cost to the disc drive.
Buffer memory (e.g., cache memory) is used to store data in advance to allow the head time to move to the next file location. Depending upon the type of data being retrieved, the head may move either too slowly, allowing the media to xe2x80x9cspin a revxe2x80x9d, i.e., rotate one or more times without reading data, until the head has located the proper data address, or move too quickly causing the head to be idle or spin without usage, while the buffer memory is purged. In either case, the idle time caused adds to the drive seek time and thus lowers drive performance. To minimize the effect of a drive being xe2x80x9ctoo slowxe2x80x9d or xe2x80x9ctoo fastxe2x80x9d the buffer sizes and access speeds may be increased. However increasing buffer memory performance also generally increases the cost of the disc drive. Further, it may be increasingly difficult to optimize the memory size to accommodate a variety of different applications, file types, sizes, etc.
Thus, what is needed is a method that allows for effective and adaptable file storage on a disc drive that optimizes the performance of the disc drive.
Aspects of the invention have particular advantages in electronic data storage systems. In one embodiment, the invention provides a method of determining data locations on a disc drive media, including providing a first association for a second data location on at least one media to a first data location then requesting to read data from the second data location, reading the data from the second data location, then determining if the first association is correct, and if the first association is correct then processing the data from the second data location, however; if the first association is incorrect, then determining a correct second data location, and modifying the first association into a second association comprising the correct second data location.
In another aspect, the invention provides a method of locating data on a disc drive, including determining a data location on at least one media to read from, determining if data within a data location is correct, if the data is correct then reading and processing the data, and if the data is incorrect then determining a new data location having the correct data.
In still another aspect, the invention provides a disc drive system including a signal-bearing media means for storing data, a code memory means coupled to a read/write controller means for controlling the reading and writing of data to the signal-bearing media, a means for reading and writing the data to the signal-bearing media, a processor means coupled to the code memory and the read/write controller comprising a program for optimizing the data location on the signal-bearing media means.